﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tema
{
    /// <summary>
    /// Abstract Car Factory. Implements parameters getters and setters.
    /// <para>Override required abstract methods for each car type</para>
    /// </summary>
    abstract class AbstractCar
    {
        private string _name;
        private string _color;
        private string _transmission;

        public virtual void setName(string name)
        {
            _name = name;
        }

        public virtual string getName()
        {
            return _name;
        }

        public virtual void setColor(string color)
        {
            _color = color;
        }

        public virtual string getColor()
        {
            return _color;
        }

        public virtual void setTransmission(string transmission)
        {
            _transmission = transmission;
        }

        public virtual string getTransmission()
        {
            return _transmission;
        }

        public abstract void setCharacteristics(string characteristic1, string characteristic2, string characteristic3);

        public abstract string getCharacteristic1();

        public abstract string getCharacteristic2();

        public abstract string getCharacteristic3();

        public abstract void printCharacteristics();
    }
}
